home *** CD-ROM | disk | FTP | other *** search
/ CD Ware Multimedia 1995 May / cd Ware (Juegos) Epimundo.iso / DOS / C / SPREAD.ZIP / SPRDVIEW.H < prev    next >
Encoding:
C/C++ Source or Header  |  1994-07-16  |  2.9 KB  |  115 lines

  1. // ***********************************************************************
  2. //
  3. //  SPRDVIEW.H
  4. //    used with SPRDVIEW.CPP
  5. //  List Viewer that displays/edits two-dimensional array
  6. //  July 19, 1994
  7. //  Curt Thompson
  8. // ***********************************************************************
  9.  
  10. class TMatrixViewer : public TView
  11. {
  12.  
  13. public:
  14.  
  15.   TMatrixViewer(const TRect& bounds, TScrollBar *aHScrollBar,
  16.     TScrollBar *aVScrollBar, ushort *aColumnWidth);
  17.   virtual void draw();
  18.   virtual void focusItem(short column, short row);
  19.   virtual TPalette& getPalette() const;
  20.   virtual void getText(char *dest, short column, short row, short maxLen);
  21.   virtual Boolean isSelected(short column, short row);
  22.   virtual void handleEvent(TEvent& event);
  23.   virtual void selectItem(short column, short row);
  24.   void setRange(short aColumns, short aRows);
  25.   virtual void setState(ushort aState, Boolean enable);
  26.   virtual void focusItemNum(short column, short row);
  27.   short getColumnPosition(short column);
  28.   virtual void shutDown();
  29.  
  30.   TScrollBar *hScrollBar;
  31.   TScrollBar *vScrollBar;
  32.   short leftColumn;
  33.   short topRow;
  34.   short focusedColumn;
  35.   short focusedRow;
  36.   short numColumns;
  37.   short numRows;
  38.   Boolean headingMode;
  39.   ushort *columnWidth;
  40.  
  41. private:
  42.  
  43.   virtual const char *streamableName() const
  44.     { return name; }
  45.  
  46. protected:
  47.  
  48.   TMatrixViewer(StreamableInit);
  49.   virtual void write(opstream&);
  50.   virtual void *read(ipstream&);
  51.  
  52. public:
  53.  
  54.   static const char * const near name;
  55.   static TStreamable *build();
  56.  
  57. };
  58.  
  59.  
  60. class THeadingViewBox : public TMatrixViewer
  61. {
  62. public:
  63.   THeadingViewBox(const TRect& bounds, TScrollBar *aHScroller,
  64.      TScrollBar *aVScroller, char **aListText, short aColumns,
  65.      short aRows, ushort *aColumnWidth);
  66.   virtual void getText(char *dest, short column, short row, short maxLen);
  67.  
  68.   char **ListText;
  69.  
  70. };
  71.  
  72.  
  73.  
  74. typedef struct {
  75.   double val;
  76.   Boolean show;
  77. } ListRec;
  78.  
  79. class TListViewBox : public TMatrixViewer
  80. {
  81. public:
  82.   TListViewBox(const TRect& bounds, TScrollBar *aHScroller,
  83.      TScrollBar *aVScroller, ListRec *aListData, short aColumns,
  84.      short aRows, ushort *aColumnWidth, ushort *aDecimalPoint);
  85.   ~TListViewBox();
  86.   virtual void getText(char *dest, short column, short row, short maxLen);
  87.   void handleEvent (TEvent& event);
  88.   virtual void putData(void *rec);
  89.  
  90.   ListRec *ListData;
  91.   ushort *decimalPoint;
  92.  
  93. };
  94.  
  95.  
  96. class TListViewDialog : public TDialog {
  97.   public:
  98.     TListViewDialog(TRect &trect, char *aTitle, char **aHeading,
  99.       short aHeadRows, ListRec *aListData, short aColumns, short aRows,
  100.       ushort *aColumnWidth, ushort *aDecimalPoint);
  101.     ~TListViewDialog() { };
  102.     void handleEvent(TEvent &);
  103.  
  104.   private:
  105.     TScrollBar *horzScroller;
  106.     TScrollBar *vertScroller;
  107.     THeadingViewBox *headingBox;
  108.     TListViewBox *listBox;
  109.     TListViewBox *listBoxPtr;
  110.     TInputLine *inputLine;
  111.     TInputLine *itemNumber;
  112.  
  113. };
  114.  
  115.